package com.cysoft.third.echarts.component.dataset;

import java.util.List;

/**
 * @author 玖零
 * @version v0.0.1
 * @project cysoft-third-echarts
 * @package com.cysoft.third.echarts.component.dataset
 * @date 2025/3/12 16:08
 * @desc
 */
public class Dataset {

    /**
     * 组件 ID。默认不指定。指定则可用于在 option 或者 API 中引用组件。
     */
    private String id;

    /**
     * 原始数据。一般来说，原始数据表达的是二维表。
     */
    private List<Object> source;

    /**
     * 使用 dimensions 定义 series.data 或者 dataset.source 的每个维度的信息。
     */
    private List<Dimension> dimensions;

    /**
     * dataset.source 第一行/列是否是 维度名 信息。可选值：
     * null/undefined/'auto'：默认，自动探测。
     * true：第一行/列是维度名信息。
     * false：第一行/列直接开始是数据。
     * number: 维度名行/列数，也就是数据行/列的开始索引。例如：sourceHeader: 2 意味着前两行/列为维度名，从第三行/列开始为数据。
     */
    private Object sourceHeader;

    /**
     * 数据变换配置
     */
    private List<Transform> transform;

    /**
     * 指定 dataset.transform 以哪个 dataset 作为输入。如果 dataset.transform 被指定了，但是 fromDatasetIndex 和 fromDatasetId 都没有被指定，那么默认会使用 fromDatasetIndex: 0.
     */
    private Integer fromDatasetIndex = 0;

    /**
     * 指定 dataset.transform 以哪个 dataset 作为输入。
     */
    private String fromDatasetId;

    /**
     * 如果一个 dataset.transform 会产出多个结果 data ，我们可以使用 fromTransformResult 获得特定的结果。
     * 大多数场景下，transform 只会产出一个结果，所以大多数情况下 fromTransformResult 并不需要指定。当不指定 fromTransformResult 时，默认使用 fromTransformResult: 0。
     */
    private Integer fromTransformResult = 0;
}
